import java.util.Scanner;

/**
 * 递归下降算法计算前缀表达式的值
 * 前缀表达式示例：* 5 + 3 4  应输出35.00
 */
public class A {
    private static Scanner scanner;
    private static String currentToken; // 当前读取的token
    
    public static void main(String[] args) {
        scanner = new Scanner(System.in);
        
        System.err.println("请输入前缀表达式（例如: * 5 + 3 4）：");
        // 读取整个输入行
        String input = scanner.nextLine();
        // 设置scanner使用空格分隔符重新解析输入
        scanner = new Scanner(input);
        
        // 获取第一个token
        if (scanner.hasNext()) {
            currentToken = scanner.next();
        } else {
            currentToken = null;
        }
        
        // 开始递归下降分析并计算表达式值
        double result = expression();
        
        // 检查是否还有未处理的token
        if (currentToken != null) {
            System.err.println("错误：表达式格式不正确");
            return;
        }
        
        // 格式化输出结果，保留两位小数
        System.out.printf("%.2f\n", result);
    }
    
    /**
     * 表达式分析：表达式由操作符和操作数组成
     * 前缀表达式的格式：操作符 操作数1 操作数2
     */
    private static double expression() {
        // 如果当前token为null，表示表达式结束
        if (currentToken == null) {
            return 0;
        }
        
        // 判断当前token是否为操作符
        if (currentToken.equals("+") || currentToken.equals("-") || 
            currentToken.equals("*") || currentToken.equals("/")) {
            
            // 保存当前操作符
            String operator = currentToken;
            
            // 读取下一个token（第一个操作数）
            advance();
            
            // 递归获取第一个操作数的值
            double operand1 = expression();
            
            // 递归获取第二个操作数的值
            double operand2 = expression();
            
            // 根据操作符执行相应的运算
            switch (operator) {
                case "+":
                    return operand1 + operand2;
                case "-":
                    return operand1 - operand2;
                case "*":
                    return operand1 * operand2;
                case "/":
                    // 处理除零错误
                    if (operand2 == 0) {
                        System.err.println("错误：除数不能为零");
                        System.exit(1);
                    }
                    return operand1 / operand2;
                default:
                    System.err.println("错误：不支持的操作符: " + operator);
                    System.exit(1);
                    return 0;
            }
        } else {
            // 如果不是操作符，则是数字（操作数）
            try {
                double value = Double.parseDouble(currentToken);
                advance(); // 读取下一个token
                return value;
            } catch (NumberFormatException e) {
                System.err.println("错误：无效的数字格式: " + currentToken);
                System.exit(1);
                return 0;
            }
        }
    }
    
    /**
     * 前进到下一个token
     */
    private static void advance() {
        if (scanner.hasNext()) {
            currentToken = scanner.next();
        } else {
            currentToken = null;
        }
    }
}